The present invention relates generally to data processing systems and, more particularly, to the use of storage devices, such as nonvolatile memory systems in data processing systems.
Recently, the number of devices using nonvolatile memories has increased. For example, an MP3 player, a digital camera, a mobile phone, a camcorder, a flash card, and a solid state disk (SSD) are examples of devices that use nonvolatile memories as storage devices.
As more devices use nonvolatile memories as storage devices, the capacity of the nonvolatile memory is generally increasing. One method for increasing memory capacity is use of a so-called multi level cell (MLC) method in which a plurality of bits is stored in one memory cell.
A two-bit MLC may be programmed to have any one of four states 11, 01, 10 and 00 according to distribution of a threshold voltage. This is illustrated, for example, in FIG. 1 where a two-bit MLC is programmed to have one of four states 11 (E1), 01 (P1), 10 (P2), and 00 (P3). A nonvolatile memory, such as a flash memory may be programmed in units of a page. A memory controller may transfer data to a flash memory through a buffer memory in page units. A page buffer in the flash memory temporarily stores the data loaded from the buffer memory and programs the loaded data into a selected page. After completing the programming operation, a program-verifying operation is carried out to determine whether the data have been correctly programmed.
As shown in FIG. 2, however, bit errors can occur during read operations due to shifts in the threshold voltage Vth for the programmed data due to such factors as charge loss, temperature, program disturbances, and the like. FIG. 3 illustrates the affects of temperature on the distribution of cells for a particular programmed state. Typically, the threshold voltage Vth may shift approximately 50 mV for each 20° C. change in temperature.